Skip to main content
Version: 2.0

Gerador de Código

Neste manual tratamos dos aspetos referentes ao Gerador de Código da framework igrpweb, desde a organização dos elementos dentro da página, todo o desenho e configuração de componentes e campos [fields].

Abordamos todo o trabalho realizável através do recurso Drag and Drop e sobre o layout do Gerador de Código, nomeadamente o desenho da página, a configuração dos elementos, eventos de JavaScript botões e o código java gerado automaticamente, enfatizando a correspondência entre os elementos do layout e métodos e variáveis das classes Java.

A esta altura partimos do princípio de que você já criou a sua aplicação e página através do Application Builder e do Home - Page Builder, respetivamente, passando agora para a criação/geração do conteúdo das páginas.

Assim como as funcionalidades de criação de aplicações e páginas, o igrpweb conta com um Gerador de Código, uma ferramenta responsável por gerar o conteúdo de cada página, oferecendo recursos para desenho do layout através de uma funcionalidade drag-and-drop, que gera automaticamente grande parte do código das páginas de aplicações igrpweb. Acessível através do botão Gerador de Código na lista de páginas de cada aplicação, permite desenhar as página e definir as propriedades dos diversos componentes e campos [fileds]. Abordamos o código Java gerado, a sua correspondência com os elementos desenhados e a configuração de regras/eventos de JavaScript e Ajax no documento O Gerador de Código.

1. Aceder ao gerador de código da página.

Home - Page Builder

Ao abrir o Gerador de Código nos deparamos com um ambiente, onde se encontram um painel lateral [1] de onde podemos arrastar componentes para o painel maior [2] onde fica o desenho da página. Gerador de código (aspecto inicial).

Também podemos arrastar campos [fields] para dentro de componentes, devendo alternar entre os dois tipos de elementos na parte superior do painel [1].

No menu superior [3], que traz o separador DESIGN selecionado, podemos navegar pelas diferentes perspetivas da página que estamos a construir. O conteúdo dos separadores XML, XSL e JAVA é afetado por ações que podemos realizar sobre o separador DESIGN. Por ora vamos nos concentrar sobre este último.

1.1 Utilizando Fields

Como sabemos o Gerador de Código do igrpweb oferece vários campos/fields que podem ser utilizados nos mais diversos componentes do framework. Então, no documento docs.igrp.cv abordamos a utilização de cada Field de forma separada e o mais simples possível de modo a facilitar a compreensão do seu funcionamento.

1.2. Utilizando Componentes

Também no portal docs.igrp.cv temos toda a documentação de uso de cada componente. Os Componentes que o igrpweb oferece para a construção das páginas de um Web Application. Optamos por uma abordagem orientada para a utilização de Bases de Dados, tendo em conta o tipo de aplicações que o nosso framework visa. Os componentes que trabalham com listas [Table, Separator List e Form List] são abordados no docs.igrp.cv.

O conhecimento da forma como funciona um framework sobre o qual o desenvolvedor trabalha trata-se de um aspeto fundamental para a otimização do produto de software e aumento de produtividade. Explorando as documentações no portal docs.igrp.cv, podemos entender a forma como funcionam as aplicações [todo o processo por trás do funcionamento de cada uma] e suas páginas, que seguem um modelo MCV em Java, com componentes de XML, XSL, JavaScript e CSS, de forma dinâmica na criação do conteúdo a ser apresentado ao utilizador. Entenderemos também a forma como o framework interage com o web browser, de um modo diferente do habitual.

Ao abrir o Gerador de Código nos deparamos com um ambiente, onde se encontram um painel lateral [1] de onde podemos arrastar componentes para o painel maior [2] onde fica o desenho da página.

Também podemos arrastar campos [fields] para dentro de componentes, devendo alternar entre os dois tipos de elementos na parte superior do painel [1].

No menu superior [3], que traz o separador DESIGN selecionado, podemos navegar pelas diferentes perspetivas da página que estamos a construir. O conteúdo dos separadores XML, XSL e JAVA é afetado por ações que podemos realizar sobre o separador DESIGN. Por ora vamos nos concentrar sobre este último.

Por defeito o separador DESIGN traz uma linha - ROW e uma coluna – COL com uma área DROD HERE, onde podemos soltar componentes arrastados do painel [COMPONENTS / FIELDS] à esquerda.

2. Desenhando uma página

Por defeito o separador DESIGN traz uma linha - ROW e uma coluna – COL com uma área DROD HERE [Erro! A origem da referência não foi encontrada.] onde podemos soltar componentes arrastados do painel [COMPONENTS / FIELDS] à esquerda. Desenho de páginas

Logo, devemos clicar sobre o componente desejado, arrastá-lo para a área DROP HERE e só soltar quando esta mudar de cor pois esta estará selecionada. Relativamente aos campos [fields], para utilizar um, basta soltá-lo sobre um componente, desde que este suporte o tipo de campo selecionado. Drag and drop na página

Podemos soltar quantos componentes quisermos sobre um DROP HERE. As linhas e colunas são fundamentais para a organização dos componentes dentro da página. Assim:

  • Podemos adicionar mais linhas clicando sobre o botão Add Row , ou eliminar pelo respetivo botão Remove.
  • Podemos dividir cada linha em colunas apontando o ponteiro do rato para Columns e escolhendo uma das configurações apresentadas, ou fazer uma configuração diferente através do último botão (assinalado na imagem a seguir).
  • Cada coluna tem no canto superior direito o botão Arrastar, que permite arrastá-la para a direita e para a esquerda dentro da respetiva linha. Configuração das linhas e colunas da página

Nesta imagem acima temos uma página com duas linhas, a primeira destas dividida em duas colunas. Arrastamos um Sectionheader para a primeira coluna e um form [1] para a segunda linha. A segunda coluna da primeira linha ficou vazia. Ao form adicionamos dois campos text field. Tenha em mente que qualquer código gerado será perdido se o desenvolvedor fechar a página do Gerador de Código sem antes salvar a informação e aguardar o feedback de sucesso. Nos casos de botões configurados como Custom Return, teremos uma falha na compilação. No entanto, as informações da página ainda são salvas.

A seguir (2ª imagem abaixo) está esquematizado o processo colaborativo e interativo, por que passa uma página desde a primeira requisição realizada pelo web browser do utilizador até a sua apresentação. Como pode ver há partilha de processamento entre o servidor de aplicação e o computadro cliente, diminuindo assim a carga de trabalho para o servidor. Compilação da página Gerador de código (aspecto final)

Ao apontarmos o ponteiro do rato para os componentes e fields, que já foram soltos na página, aparecem grupos de botões correspondentes em seu canto superior direito. Botões de configuração dos fields

O botão Copiar componentes e fields duplica componentes e fields, Configurações de componentes e fields permite o acesso às configurações do elemento, Eliminar componentes e fields permite eliminar, e Arrastar componentes e fields, presente apenas em componentes, permite arrastar esses elementos. Para mover uma field basta clicarmos sobre ela e arrastar.
Sobre os componentes:

  • Componentes como a box, o tab e o panel só recebem outros componentes. Logo, não podemos soltar fields diretamente sobre eles;
  • Alguns componentes, como o form e a table, recebem vários tipos de campo;
  • O tolsbar só recebe o campo button;
  • Muitos componentes, como é o caso do chart, não recebem fields;
  • O designer deve testar os diversos elementos para adquirir a habilidade de produzir o melhor resultado. Esquema de funcionamento da página igrpweb

3. XML – XSL

Geralmente, quando um web browser solicita uma página web ele recebe um conteúdo em HTML para ser apresentado. No caso de páginas do igrpweb o processo é diferente. O web browser recebe dois ficheiros um XML e um XSL e a construção do conteúdo HTML ocorre dentro deste browser. Numa analogia com o processamento comum de páginas web, o XSL poderia ser comparado ao PHP, por exemplo, no que diz respeito à construção do HTML contendo dentro de si a estrutura da página, o modelo do que deve ser o HTML, sendo o responsável por gerar esse código. O XML contém os dados.
Vejamos os passos deste processo:

  • O web browser faz uma requisição da página;
  • Ocorre no servidor de aplicação uma pilha de processos a fim de preparar o conteúdo (um ficheiro XML) a ser retornado como resposta. Analisaremos esse processo em maiores detalhes mais adiante. O referido ficheiro contém os dados a ser apresentados e um link para o XSL correspondente;
  • O servidor retorna o XML gerado no passo 2 para o web browser;
  • O web browser faz uma nova requisição, desta vez para obter o XSL indicado no XML recebido;
  • O servidor retorna o XSL correspondente;
  • Ocorre o processo de construção do HTML, no web browser, com a aplicação do XSL sobre o conteúdo do XML;
  • O web browser, agora faz requisições de média, para obter JavaScript, CSS, imagens, vídeos, que podem estar no servidor de aplicação ou na internet.
  • Agora, o web browser recebe toda a média solicitada e finda o processo de construção da página, que em seguida é apresentada.

É importante perceber que, apesar de todo o processo que ocorre no web browser, os dados referentes ao negócio a ser apresentados, são trabalhados e preparados em segurança no servidor de aplicação pelo código Java da página e enviados ao browser dentro do ficheiro XML.